package com.siwei.apply.service;

import com.siwei.apply.domain.res.YdbpRes;
import com.siwei.apply.domain.vo.YdbpUpdateVo;
import com.siwei.apply.domain.vo.YdbpVo;

/**
 * 用地报批 服务接口
 */
public interface YdbpService {
    /**
     * 根据项目projectId查询是否存在
     */
    Boolean isExit(String projectId);

    /**
     * 添加用地报批信息
     *
     * @param ydbpVo 用地报批视图对象
     * @return 用地报批ID
     */
    String add(YdbpVo ydbpVo);

    /**
     * 获取用地报批信息
     *
     * @param projectId 项目ID
     * @return 用地报批结果对象
     */
    YdbpRes get(String projectId);

    /**
     * 根据主键id获取用地报批信息，返回结构与 get(projectId) 一致
     */
    YdbpRes getById(String id);

    /**
     * 更新用地报批信息
     *
     * @param ydbpUpdateVo 用地报批更新视图对象
     */
    void update(YdbpUpdateVo ydbpUpdateVo);

    /**
     * 更新用地报批的上链状态
     *
     * @param id         用地报批ID
     * @param hasOnchain 是否已上链
     */
    void updateHasOnchain(String id, Boolean hasOnchain);
}
